跳到主要内容

Body的节点事件

描述:

  物理对象碰撞事件的信号槽定义。将物理体对象的“receivingContact“属性设置为true时,可以触发并接收到这些信号槽事件。

用法示例:

-- 可以使用以下形式的代码来注册监听这些事件:
body.receivingContact = true
body:slot("ContactStart", function(other: Body, point: Vec2, normal: Vec2, enabled: boolean)
print("感应器碰撞到了物理体", other, point, normal, enabled)
end)

BodyEnter

类型: 节点事件。

描述:

  当物理体对象与传感器对象碰撞时触发。此事件当物理体附加了传感器时就会触发。

签名:

["BodyEnter"]: function(other: Body, sensorTag: integer)

参数:

参数名类型描述
otherBody当前发生碰撞的物理体对象。
sensorTaginteger触发此碰撞事件的传感器的标签编号。

BodyLeave

类型: 节点事件。

描述:

  当物理体对象不再与传感器对象碰撞时触发。此事件当物理体附加了传感器时就会触发。

签名:

["BodyLeave"]: function(other: Body, sensorTag: integer)

参数:

参数名类型描述
otherBody当前结束碰撞的物理体对象。
sensorTaginteger触发此碰撞事件的传感器的标签。

ContactStart

类型: 节点事件。

描述:

  当一个物理体对象开始与另一个物理体碰撞时触发。 需要将物理体对象的“receivingContact”属性设置为true才会触发。

签名:

["ContactStart"]: function(other: Body, point: Vec2, normal: Vec2, enabled: boolean)

参数:

参数名类型描述
otherBody被碰撞的物理体对象。
pointVec2世界坐标系中的碰撞点。
normalVec2世界坐标系中的接触表面法向量。
enabledboolean碰撞是否启用。被过滤的碰撞仍会触发此事件,但启用状态将为false。

ContactEnd

类型: 节点事件。

描述:

  当一个物理体对象停止与另一个物理体碰撞时触发。 需要将物理体对象的“receivingContact”属性设置为true才会触发。

签名:

["ContactEnd"]: function(other: Body, point: Vec2, normal: Vec2)

参数:

参数名类型描述
otherBody结束碰撞的物理体对象。
pointVec2世界坐标系中的碰撞点。
normalVec2世界坐标系中的接触表面法向量。